use std::f64::consts::PI;

mod strategyx;
// ---------------- 常量与三角函数示例 ----------------
/// 常量与三角函数示例
///
/// 说明：演示数学常量（PI）、机器相关常量（EPSILON、MAX 等）与三角函数的基本用法及一个近似恒等式
#[test]
fn f64_consts_and_trig() {
    // 平台与数学常量
    println!("PI = {}", PI); // PI 常量
    println!("EPSILON = {}", f64::EPSILON); // 表示相对精度的下界
    println!(
        "MAX = {} MIN = {} MIN_POSITIVE = {}",
        f64::MAX,
        f64::MIN,
        f64::MIN_POSITIVE
    );

    // 三角函数与恒等式近似示例
    let angle = PI / 6.0; // 30 度
    // sin / cos 的返回值范围为 [-1, 1]
    let s = angle.sin();
    let c = angle.cos();
    // sin^2 + cos^2 理论值为 1，浮点计算存在舍入误差，用近似比较
    assert!((s.powi(2) + c.powi(2) - 1.0).abs() < 1e-12);
}
